Code-Smells Detection using Good and Bad Software Design Examples
نویسندگان
چکیده
Code-Smells refer to design situations that may adversely affect the maintenance of software. They make a system difficult to change, which may in turn introduce bugs. Codesmells are detected, in general, using quality metrics that formalize some symptoms based on detection rules. We propose in this work to consider the problem of code-smells detection as a multi-objective problem where examples of code-smells and well-designed code are used to generate detection rules. To this end, we use multi-objective genetic programming (MOGP) to find the best combination of metrics that maximizes the detection of code-smells examples and minimizes the detection of well-designed code examples. We evaluated our proposal on seven large open source systems and found that, on average, most of the different three code-smells types were detected with an average of 86% of precision and 91% of recall. Statistical analysis of our experiments over 51 runs shows that MOGP performed significantly better than state-ofthe-art code-smell detectors.
منابع مشابه
Detecting Bad Smells in Object Oriented Design Using Design Change Propagation Probability Matrix
-Object oriented software systems are subject to frequent modifications either during development (iterative, agile software development) or software evolution. For such systems which have large number of classes, detection of design defects is a complex task. Bad smells are used to identify design defects in object oriented software design. Identification of bad smells allows us to apply appro...
متن کاملA Catalog of Bad Smells in Design-by-Contract Methodologies with Java Modeling Language
Bad smells are usually related to program source code, arising from bad design and programming practices. Refactoring activities are often motivated by the detection of bad smells. With the increasing adoption of Design-by-Contract (DBC) methodologies in formal software development, evidence of bad design practices can similarly be found in programs that combine actual production code with inte...
متن کاملJava Quality Assurance by Detecting Code Smells
Software inspection is a known technique for improving software quality. It involves carefully examining the code, the design, and the documentation of software and checking these for aspects that are known to be potentially problematic based on past experience. Code smells are a metaphor to describe patterns that are generally associated with bad design and bad programming practices. Originall...
متن کاملCan Software Faults be Analyzed using Bad Code Smells? : An Empirical Study
The design of software systems can exhibit several problems which can be either due to inefficient analysis and design during the initial construction of the software or more often, due to software ageing, where software quality degenerates over time. The design problems appear as "bad smells" at code or design level and the process of removing them is termed as Refactoring.. This paper present...
متن کاملMulti-step Automated Refactoring for Code Smell
In computer programming, code smell may origin of latent problems in source code. Detecting and resolving bad smells remain time intense for software engineers despite proposals on bad smell detecting and refactoring tools. Numerous code smells have been recognized yet the sequence in which the detection and resolution of different kinds of code smells are performed because software engineers d...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2013